package com.doublethread.easymart.modules.order.dto;

import com.doublethread.easymart.common.result.BasePageDTO;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * 订单查询DTO
 * 用于管理端和公开接口的订单列表查询
 */
@Data
@EqualsAndHashCode(callSuper = true)
public class OrderQueryDTO extends BasePageDTO {

    /**
     * 订单号搜索
     */
    private String orderNo;

    /**
     * 用户ID筛选
     */
    private Long userId;

    /**
     * 用户名搜索
     */
    private String username;

    /**
     * 收货人手机号搜索
     */
    private String receiverPhone;

    /**
     * 订单状态筛选：0-已取消，1-待支付，2-待发货，3-待收货，4-已完成，5-已过期
     */
    private Integer status;

    /**
     * 支付状态筛选：0-未支付，1-已支付
     */
    private Integer paymentStatus;

    /**
     * 发货状态筛选：0-未发货，1-已发货，2-已收货
     */
    private Integer deliveryStatus;

    /**
     * 支付方式筛选：1-微信支付，2-支付宝支付
     */
    private Integer paymentType;

    /**
     * 最小订单金额
     */
    private BigDecimal minAmount;

    /**
     * 最大订单金额
     */
    private BigDecimal maxAmount;

    /**
     * 订单开始时间
     */
    private LocalDateTime startTime;

    /**
     * 订单结束时间
     */
    private LocalDateTime endTime;

    /**
     * 排序字段：createTime/totalAmount/paymentTime
     */
    private String sortBy = "createTime";

    /**
     * 排序方向：asc/desc
     */
    private String sortOrder = "desc";
}
